; ModuleID = 't1.c'
source_filename = "t1.c"
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-linux-gnu"

@.str = internal unnamed_addr constant { [16 x i8], [48 x i8] } { [16 x i8] c"test_local: %d\0A\00", [48 x i8] zeroinitializer }, align 32
@__asan_option_detect_stack_use_after_return = external global i32
@__asan_gen_ = private unnamed_addr constant [28 x i8] c"2 32 4 3 a:4 48 80 6 arr1:9\00", align 1
@__asan_gen_.1 = private constant [5 x i8] c"t1.c\00", align 1
@__asan_gen_.2 = private unnamed_addr constant [17 x i8] c"<string literal>\00", align 1
@__asan_gen_.3 = private unnamed_addr constant [5 x i8] c"t1.c\00", align 1
@__asan_gen_.4 = private unnamed_addr constant { [5 x i8]*, i32, i32 } { [5 x i8]* @__asan_gen_.3, i32 7, i32 16 }
@0 = internal global [1 x { i64, i64, i64, i64, i64, i64, i64, i64 }] [{ i64, i64, i64, i64, i64, i64, i64, i64 } { i64 ptrtoint ({ [16 x i8], [48 x i8] }* @.str to i64), i64 16, i64 64, i64 ptrtoint ([17 x i8]* @__asan_gen_.2 to i64), i64 ptrtoint ([5 x i8]* @__asan_gen_.1 to i64), i64 0, i64 ptrtoint ({ [5 x i8]*, i32, i32 }* @__asan_gen_.4 to i64), i64 0 }]
@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 1, void ()* @asan.module_ctor, i8* null }]
@llvm.global_dtors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 1, void ()* @asan.module_dtor, i8* null }]

; Function Attrs: noinline nounwind optnone sanitize_address uwtable
define void @test_local(i32 %i) #0 !dbg !9 {
  %i.addr = alloca i32, align 4
  %p = alloca i32*, align 8
  %t = alloca i32, align 4
  %asan_local_stack_base = alloca i64, !dbg !13
  %1 = load i32, i32* @__asan_option_detect_stack_use_after_return, !dbg !13
  %2 = icmp ne i32 %1, 0, !dbg !13
  br i1 %2, label %3, label %5

; <label>:3:                                      ; preds = %0
  %4 = call i64 @__asan_stack_malloc_2(i64 160), !dbg !13
  br label %5

; <label>:5:                                      ; preds = %0, %3
  %6 = phi i64 [ 0, %0 ], [ %4, %3 ], !dbg !13
  %7 = icmp eq i64 %6, 0, !dbg !13
  br i1 %7, label %8, label %10

; <label>:8:                                      ; preds = %5
  %MyAlloca = alloca i8, i64 160, align 32, !dbg !13
  %9 = ptrtoint i8* %MyAlloca to i64, !dbg !13
  br label %10

; <label>:10:                                     ; preds = %5, %8
  %11 = phi i64 [ %6, %5 ], [ %9, %8 ], !dbg !13
  store i64 %11, i64* %asan_local_stack_base, !dbg !13
  %12 = add i64 %11, 32, !dbg !13
  %13 = inttoptr i64 %12 to i32*, !dbg !13
  %14 = add i64 %11, 48, !dbg !13
  %15 = inttoptr i64 %14 to [20 x i32]*, !dbg !13
  %16 = inttoptr i64 %11 to i64*, !dbg !13
  store i64 1102416563, i64* %16, !dbg !13
  %17 = add i64 %11, 8, !dbg !13
  %18 = inttoptr i64 %17 to i64*, !dbg !13
  store i64 ptrtoint ([28 x i8]* @__asan_gen_ to i64), i64* %18, !dbg !13
  %19 = add i64 %11, 16, !dbg !13
  %20 = inttoptr i64 %19 to i64*, !dbg !13
  store i64 ptrtoint (void (i32)* @test_local to i64), i64* %20, !dbg !13
  %21 = lshr i64 %11, 3, !dbg !13
  %22 = add i64 %21, 2147450880, !dbg !13
  %23 = add i64 %22, 0, !dbg !13
  %24 = inttoptr i64 %23 to i64*, !dbg !13
  store i64 -506387807054204431, i64* %24, align 1, !dbg !13
  %25 = add i64 %22, 8, !dbg !13
  %26 = inttoptr i64 %25 to i64*, !dbg !13
  store i64 -506381209866536712, i64* %26, align 1, !dbg !13
  %27 = add i64 %22, 16, !dbg !13
  %28 = inttoptr i64 %27 to i32*, !dbg !13
  store i32 -202116109, i32* %28, align 1, !dbg !13
  call void @llvm.dbg.declare(metadata i64* %asan_local_stack_base, metadata !14, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 32)), !dbg !15
  call void @llvm.dbg.declare(metadata i64* %asan_local_stack_base, metadata !16, metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 48)), !dbg !20
  store i32 %i, i32* %i.addr, align 4
  call void @llvm.dbg.declare(metadata i32* %i.addr, metadata !21, metadata !DIExpression()), !dbg !22
  %29 = bitcast i32* %13 to i8*, !dbg !23
  %30 = add i64 %22, 4, !dbg !23
  %31 = inttoptr i64 %30 to i8*, !dbg !23
  store i8 4, i8* %31, align 1, !dbg !23
  call void @llvm.lifetime.start.p0i8(i64 4, i8* %29) #4, !dbg !23
  %32 = ptrtoint i32* %13 to i64, !dbg !15
  %33 = lshr i64 %32, 3, !dbg !15
  %34 = add i64 %33, 2147450880, !dbg !15
  %35 = inttoptr i64 %34 to i8*, !dbg !15
  %36 = load i8, i8* %35, !dbg !15
  %37 = icmp ne i8 %36, 0, !dbg !15
  br i1 %37, label %38, label %44, !dbg !15, !prof !24

; <label>:38:                                     ; preds = %10
  %39 = and i64 %32, 7, !dbg !15
  %40 = add i64 %39, 3, !dbg !15
  %41 = trunc i64 %40 to i8, !dbg !15
  %42 = icmp sge i8 %41, %36, !dbg !15
  br i1 %42, label %43, label %44, !dbg !15

; <label>:43:                                     ; preds = %38
  call void @__asan_report_store4(i64 %32), !dbg !15
  call void asm sideeffect "", ""()
  unreachable

; <label>:44:                                     ; preds = %38, %10
  store i32 2, i32* %13, align 4, !dbg !15
  %45 = bitcast i32** %p to i8*, !dbg !25
  call void @llvm.lifetime.start.p0i8(i64 8, i8* %45) #4, !dbg !25
  call void @llvm.dbg.declare(metadata i32** %p, metadata !26, metadata !DIExpression()), !dbg !28
  store i32* %13, i32** %p, align 8, !dbg !28
  %46 = bitcast i32* %t to i8*, !dbg !29
  call void @llvm.lifetime.start.p0i8(i64 4, i8* %46) #4, !dbg !29
  call void @llvm.dbg.declare(metadata i32* %t, metadata !31, metadata !DIExpression()), !dbg !32
  store i32 0, i32* %t, align 4, !dbg !32
  br label %47, !dbg !29

; <label>:47:                                     ; preds = %83, %44
  %48 = load i32, i32* %t, align 4, !dbg !33
  %49 = load i32, i32* %i.addr, align 4, !dbg !35
  %cmp = icmp slt i32 %48, %49, !dbg !36
  br i1 %cmp, label %52, label %50, !dbg !37

; <label>:50:                                     ; preds = %47
  %51 = bitcast i32* %t to i8*, !dbg !38
  call void @llvm.lifetime.end.p0i8(i64 4, i8* %51) #4, !dbg !38
  br label %85

; <label>:52:                                     ; preds = %47
  %53 = ptrtoint i32* %13 to i64, !dbg !39
  %54 = lshr i64 %53, 3, !dbg !39
  %55 = add i64 %54, 2147450880, !dbg !39
  %56 = inttoptr i64 %55 to i8*, !dbg !39
  %57 = load i8, i8* %56, !dbg !39
  %58 = icmp ne i8 %57, 0, !dbg !39
  br i1 %58, label %59, label %65, !dbg !39, !prof !24

; <label>:59:                                     ; preds = %52
  %60 = and i64 %53, 7, !dbg !39
  %61 = add i64 %60, 3, !dbg !39
  %62 = trunc i64 %61 to i8, !dbg !39
  %63 = icmp sge i8 %62, %57, !dbg !39
  br i1 %63, label %64, label %65, !dbg !39

; <label>:64:                                     ; preds = %59
  call void @__asan_report_load4(i64 %53), !dbg !39
  call void asm sideeffect "", ""()
  unreachable

; <label>:65:                                     ; preds = %59, %52
  %66 = load i32, i32* %13, align 4, !dbg !39
  %67 = load i32, i32* %i.addr, align 4, !dbg !41
  %add = add nsw i32 %66, %67, !dbg !42
  %68 = load i32*, i32** %p, align 8, !dbg !43
  %69 = ptrtoint i32* %68 to i64, !dbg !44
  %70 = lshr i64 %69, 3, !dbg !44
  %71 = add i64 %70, 2147450880, !dbg !44
  %72 = inttoptr i64 %71 to i8*, !dbg !44
  %73 = load i8, i8* %72, !dbg !44
  %74 = icmp ne i8 %73, 0, !dbg !44
  br i1 %74, label %75, label %81, !dbg !44, !prof !24

; <label>:75:                                     ; preds = %65
  %76 = and i64 %69, 7, !dbg !44
  %77 = add i64 %76, 3, !dbg !44
  %78 = trunc i64 %77 to i8, !dbg !44
  %79 = icmp sge i8 %78, %73, !dbg !44
  br i1 %79, label %80, label %81, !dbg !44

; <label>:80:                                     ; preds = %75
  call void @__asan_report_load4(i64 %69), !dbg !44
  call void asm sideeffect "", ""()
  unreachable

; <label>:81:                                     ; preds = %75, %65
  %82 = load i32, i32* %68, align 4, !dbg !44
  %add1 = add nsw i32 %add, %82, !dbg !45
  %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ({ [16 x i8], [48 x i8] }, { [16 x i8], [48 x i8] }* @.str, i32 0, i32 0, i32 0), i32 %add1), !dbg !46
  br label %83, !dbg !47

; <label>:83:                                     ; preds = %81
  %84 = load i32, i32* %t, align 4, !dbg !48
  %inc = add nsw i32 %84, 1, !dbg !48
  store i32 %inc, i32* %t, align 4, !dbg !48
  br label %47, !dbg !38, !llvm.loop !49

; <label>:85:                                     ; preds = %50
  %86 = bitcast [20 x i32]* %15 to i8*, !dbg !51
  %87 = add i64 %22, 6, !dbg !51
  %88 = inttoptr i64 %87 to i64*, !dbg !51
  store i64 0, i64* %88, align 1, !dbg !51
  %89 = add i64 %22, 14, !dbg !51
  %90 = inttoptr i64 %89 to i16*, !dbg !51
  store i16 0, i16* %90, align 1, !dbg !51
  call void @llvm.lifetime.start.p0i8(i64 80, i8* %86) #4, !dbg !51
  %arrayidx = getelementptr inbounds [20 x i32], [20 x i32]* %15, i64 0, i64 0, !dbg !52
  %91 = ptrtoint i32* %arrayidx to i64, !dbg !53
  %92 = lshr i64 %91, 3, !dbg !53
  %93 = add i64 %92, 2147450880, !dbg !53
  %94 = inttoptr i64 %93 to i8*, !dbg !53
  %95 = load i8, i8* %94, !dbg !53
  %96 = icmp ne i8 %95, 0, !dbg !53
  br i1 %96, label %97, label %103, !dbg !53, !prof !24

; <label>:97:                                     ; preds = %85
  %98 = and i64 %91, 7, !dbg !53
  %99 = add i64 %98, 3, !dbg !53
  %100 = trunc i64 %99 to i8, !dbg !53
  %101 = icmp sge i8 %100, %95, !dbg !53
  br i1 %101, label %102, label %103, !dbg !53

; <label>:102:                                    ; preds = %97
  call void @__asan_report_store4(i64 %91), !dbg !53
  call void asm sideeffect "", ""()
  unreachable

; <label>:103:                                    ; preds = %97, %85
  store i32 19999, i32* %arrayidx, align 16, !dbg !53
  %104 = bitcast [20 x i32]* %15 to i8*, !dbg !54
  %105 = add i64 %22, 6, !dbg !54
  %106 = inttoptr i64 %105 to i64*, !dbg !54
  store i64 -506381209866536712, i64* %106, align 1, !dbg !54
  %107 = add i64 %22, 14, !dbg !54
  %108 = inttoptr i64 %107 to i16*, !dbg !54
  store i16 -1800, i16* %108, align 1, !dbg !54
  call void @llvm.lifetime.end.p0i8(i64 80, i8* %104) #4, !dbg !54
  %109 = bitcast i32** %p to i8*, !dbg !54
  call void @llvm.lifetime.end.p0i8(i64 8, i8* %109) #4, !dbg !54
  %110 = bitcast i32* %13 to i8*, !dbg !54
  %111 = add i64 %22, 4, !dbg !54
  %112 = inttoptr i64 %111 to i8*, !dbg !54
  store i8 -8, i8* %112, align 1, !dbg !54
  call void @llvm.lifetime.end.p0i8(i64 4, i8* %110) #4, !dbg !54
  store i64 1172321806, i64* %16, !dbg !54
  %113 = icmp ne i64 %6, 0, !dbg !54
  br i1 %113, label %114, label %127, !dbg !54

; <label>:114:                                    ; preds = %103
  %115 = add i64 %22, 0, !dbg !54
  %116 = inttoptr i64 %115 to i64*, !dbg !54
  store i64 -723401728380766731, i64* %116, align 1, !dbg !54
  %117 = add i64 %22, 8, !dbg !54
  %118 = inttoptr i64 %117 to i64*, !dbg !54
  store i64 -723401728380766731, i64* %118, align 1, !dbg !54
  %119 = add i64 %22, 16, !dbg !54
  %120 = inttoptr i64 %119 to i64*, !dbg !54
  store i64 -723401728380766731, i64* %120, align 1, !dbg !54
  %121 = add i64 %22, 24, !dbg !54
  %122 = inttoptr i64 %121 to i64*, !dbg !54
  store i64 -723401728380766731, i64* %122, align 1, !dbg !54
  %123 = add i64 %6, 248, !dbg !54
  %124 = inttoptr i64 %123 to i64*, !dbg !54
  %125 = load i64, i64* %124, !dbg !54
  %126 = inttoptr i64 %125 to i8*, !dbg !54
  store i8 0, i8* %126, !dbg !54
  br label %134, !dbg !54

; <label>:127:                                    ; preds = %103
  %128 = add i64 %22, 0, !dbg !54
  %129 = inttoptr i64 %128 to i64*, !dbg !54
  store i64 0, i64* %129, align 1, !dbg !54
  %130 = add i64 %22, 8, !dbg !54
  %131 = inttoptr i64 %130 to i64*, !dbg !54
  store i64 0, i64* %131, align 1, !dbg !54
  %132 = add i64 %22, 16, !dbg !54
  %133 = inttoptr i64 %132 to i32*, !dbg !54
  store i32 0, i32* %133, align 1, !dbg !54
  br label %134, !dbg !54

; <label>:134:                                    ; preds = %127, %114
  ret void, !dbg !54
}

; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1

; Function Attrs: argmemonly nounwind
declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #2

declare i32 @printf(i8*, ...) #3

; Function Attrs: argmemonly nounwind
declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #2

; Function Attrs: noinline nounwind optnone sanitize_address uwtable
define i32 @main() #0 !dbg !55 {
  %retval = alloca i32, align 4
  store i32 0, i32* %retval, align 4
  call void @test_local(i32 5), !dbg !58
  ret i32 0, !dbg !59
}

declare void @__asan_report_load_n(i64, i64)

declare void @__asan_loadN(i64, i64)

declare void @__asan_report_load1(i64)

declare void @__asan_load1(i64)

declare void @__asan_report_load2(i64)

declare void @__asan_load2(i64)

declare void @__asan_report_load4(i64)

declare void @__asan_load4(i64)

declare void @__asan_report_load8(i64)

declare void @__asan_load8(i64)

declare void @__asan_report_load16(i64)

declare void @__asan_load16(i64)

declare void @__asan_report_store_n(i64, i64)

declare void @__asan_storeN(i64, i64)

declare void @__asan_report_store1(i64)

declare void @__asan_store1(i64)

declare void @__asan_report_store2(i64)

declare void @__asan_store2(i64)

declare void @__asan_report_store4(i64)

declare void @__asan_store4(i64)

declare void @__asan_report_store8(i64)

declare void @__asan_store8(i64)

declare void @__asan_report_store16(i64)

declare void @__asan_store16(i64)

declare void @__asan_report_exp_load_n(i64, i64, i32)

declare void @__asan_exp_loadN(i64, i64, i32)

declare void @__asan_report_exp_load1(i64, i32)

declare void @__asan_exp_load1(i64, i32)

declare void @__asan_report_exp_load2(i64, i32)

declare void @__asan_exp_load2(i64, i32)

declare void @__asan_report_exp_load4(i64, i32)

declare void @__asan_exp_load4(i64, i32)

declare void @__asan_report_exp_load8(i64, i32)

declare void @__asan_exp_load8(i64, i32)

declare void @__asan_report_exp_load16(i64, i32)

declare void @__asan_exp_load16(i64, i32)

declare void @__asan_report_exp_store_n(i64, i64, i32)

declare void @__asan_exp_storeN(i64, i64, i32)

declare void @__asan_report_exp_store1(i64, i32)

declare void @__asan_exp_store1(i64, i32)

declare void @__asan_report_exp_store2(i64, i32)

declare void @__asan_exp_store2(i64, i32)

declare void @__asan_report_exp_store4(i64, i32)

declare void @__asan_exp_store4(i64, i32)

declare void @__asan_report_exp_store8(i64, i32)

declare void @__asan_exp_store8(i64, i32)

declare void @__asan_report_exp_store16(i64, i32)

declare void @__asan_exp_store16(i64, i32)

declare i8* @__asan_memmove(i8*, i8*, i64)

declare i8* @__asan_memcpy(i8*, i8*, i64)

declare i8* @__asan_memset(i8*, i32, i64)

declare void @__asan_handle_no_return()

declare void @__sanitizer_ptr_cmp(i64, i64)

declare void @__sanitizer_ptr_sub(i64, i64)

declare i64 @__asan_stack_malloc_0(i64)

declare void @__asan_stack_free_0(i64, i64)

declare i64 @__asan_stack_malloc_1(i64)

declare void @__asan_stack_free_1(i64, i64)

declare i64 @__asan_stack_malloc_2(i64)

declare void @__asan_stack_free_2(i64, i64)

declare i64 @__asan_stack_malloc_3(i64)

declare void @__asan_stack_free_3(i64, i64)

declare i64 @__asan_stack_malloc_4(i64)

declare void @__asan_stack_free_4(i64, i64)

declare i64 @__asan_stack_malloc_5(i64)

declare void @__asan_stack_free_5(i64, i64)

declare i64 @__asan_stack_malloc_6(i64)

declare void @__asan_stack_free_6(i64, i64)

declare i64 @__asan_stack_malloc_7(i64)

declare void @__asan_stack_free_7(i64, i64)

declare i64 @__asan_stack_malloc_8(i64)

declare void @__asan_stack_free_8(i64, i64)

declare i64 @__asan_stack_malloc_9(i64)

declare void @__asan_stack_free_9(i64, i64)

declare i64 @__asan_stack_malloc_10(i64)

declare void @__asan_stack_free_10(i64, i64)

declare void @__asan_poison_stack_memory(i64, i64)

declare void @__asan_unpoison_stack_memory(i64, i64)

declare void @__asan_set_shadow_00(i64, i64)

declare void @__asan_set_shadow_f1(i64, i64)

declare void @__asan_set_shadow_f2(i64, i64)

declare void @__asan_set_shadow_f3(i64, i64)

declare void @__asan_set_shadow_f5(i64, i64)

declare void @__asan_set_shadow_f8(i64, i64)

declare void @__asan_alloca_poison(i64, i64)

declare void @__asan_allocas_unpoison(i64, i64)

declare void @__asan_before_dynamic_init(i64)

declare void @__asan_after_dynamic_init()

declare void @__asan_register_globals(i64, i64)

declare void @__asan_unregister_globals(i64, i64)

declare void @__asan_register_image_globals(i64)

declare void @__asan_unregister_image_globals(i64)

declare void @__asan_register_elf_globals(i64, i64, i64)

declare void @__asan_unregister_elf_globals(i64, i64, i64)

declare void @__asan_init()

define internal void @asan.module_ctor() {
  call void @__asan_init()
  call void @__asan_version_mismatch_check_v8()
  call void @__asan_register_globals(i64 ptrtoint ([1 x { i64, i64, i64, i64, i64, i64, i64, i64 }]* @0 to i64), i64 1)
  ret void
}

declare void @__asan_version_mismatch_check_v8()

define internal void @asan.module_dtor() {
  call void @__asan_unregister_globals(i64 ptrtoint ([1 x { i64, i64, i64, i64, i64, i64, i64, i64 }]* @0 to i64), i64 1)
  ret void
}

attributes #0 = { noinline nounwind optnone sanitize_address uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind readnone speculatable }
attributes #2 = { argmemonly nounwind }
attributes #3 = { "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #4 = { nounwind }

!llvm.dbg.cu = !{!0}
!llvm.asan.globals = !{!3}
!llvm.module.flags = !{!5, !6, !7}
!llvm.ident = !{!8}

!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
!1 = !DIFile(filename: "t1.c", directory: "/home/vagrant/proj/rust/mycode/rust_test/c")
!2 = !{}
!3 = !{[16 x i8]* getelementptr inbounds ({ [16 x i8], [48 x i8] }, { [16 x i8], [48 x i8] }* @.str, i32 0, i32 0), !4, !"<string literal>", i1 false, i1 false}
!4 = !{!"t1.c", i32 7, i32 16}
!5 = !{i32 2, !"Dwarf Version", i32 4}
!6 = !{i32 2, !"Debug Info Version", i32 3}
!7 = !{i32 1, !"wchar_size", i32 4}
!8 = !{!"clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)"}
!9 = distinct !DISubprogram(name: "test_local", scope: !1, file: !1, line: 3, type: !10, isLocal: false, isDefinition: true, scopeLine: 3, flags: DIFlagPrototyped, isOptimized: false, unit: !0, variables: !2)
!10 = !DISubroutineType(types: !11)
!11 = !{null, !12}
!12 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
!13 = !DILocation(line: 3, scope: !9)
!14 = !DILocalVariable(name: "a", scope: !9, file: !1, line: 4, type: !12)
!15 = !DILocation(line: 4, column: 9, scope: !9)
!16 = !DILocalVariable(name: "arr1", scope: !9, file: !1, line: 9, type: !17)
!17 = !DICompositeType(tag: DW_TAG_array_type, baseType: !12, size: 640, elements: !18)
!18 = !{!19}
!19 = !DISubrange(count: 20)
!20 = !DILocation(line: 9, column: 9, scope: !9)
!21 = !DILocalVariable(name: "i", arg: 1, scope: !9, file: !1, line: 3, type: !12)
!22 = !DILocation(line: 3, column: 21, scope: !9)
!23 = !DILocation(line: 4, column: 5, scope: !9)
!24 = !{!"branch_weights", i32 1, i32 100000}
!25 = !DILocation(line: 5, column: 5, scope: !9)
!26 = !DILocalVariable(name: "p", scope: !9, file: !1, line: 5, type: !27)
!27 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !12, size: 64)
!28 = !DILocation(line: 5, column: 10, scope: !9)
!29 = !DILocation(line: 6, column: 10, scope: !30)
!30 = distinct !DILexicalBlock(scope: !9, file: !1, line: 6, column: 5)
!31 = !DILocalVariable(name: "t", scope: !30, file: !1, line: 6, type: !12)
!32 = !DILocation(line: 6, column: 14, scope: !30)
!33 = !DILocation(line: 6, column: 21, scope: !34)
!34 = distinct !DILexicalBlock(scope: !30, file: !1, line: 6, column: 5)
!35 = !DILocation(line: 6, column: 25, scope: !34)
!36 = !DILocation(line: 6, column: 23, scope: !34)
!37 = !DILocation(line: 6, column: 5, scope: !30)
!38 = !DILocation(line: 6, column: 5, scope: !34)
!39 = !DILocation(line: 7, column: 36, scope: !40)
!40 = distinct !DILexicalBlock(scope: !34, file: !1, line: 6, column: 33)
!41 = !DILocation(line: 7, column: 40, scope: !40)
!42 = !DILocation(line: 7, column: 38, scope: !40)
!43 = !DILocation(line: 7, column: 45, scope: !40)
!44 = !DILocation(line: 7, column: 44, scope: !40)
!45 = !DILocation(line: 7, column: 42, scope: !40)
!46 = !DILocation(line: 7, column: 9, scope: !40)
!47 = !DILocation(line: 8, column: 5, scope: !40)
!48 = !DILocation(line: 6, column: 29, scope: !34)
!49 = distinct !{!49, !37, !50}
!50 = !DILocation(line: 8, column: 5, scope: !30)
!51 = !DILocation(line: 9, column: 5, scope: !9)
!52 = !DILocation(line: 10, column: 5, scope: !9)
!53 = !DILocation(line: 10, column: 13, scope: !9)
!54 = !DILocation(line: 14, column: 1, scope: !9)
!55 = distinct !DISubprogram(name: "main", scope: !1, file: !1, line: 16, type: !56, isLocal: false, isDefinition: true, scopeLine: 16, isOptimized: false, unit: !0, variables: !2)
!56 = !DISubroutineType(types: !57)
!57 = !{!12}
!58 = !DILocation(line: 17, column: 5, scope: !55)
!59 = !DILocation(line: 18, column: 5, scope: !55)
